package maple.thelittleredbook.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 验证码实体类
 */
@Data
@TableName("verification_codes")
public class VerificationCode {
    /**
     * 验证记录ID，主键，自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 邮箱，外键→users.email
     */
    private String email;

    /**
     * 6位数字验证码，非空
     */
    private String token;

    /**
     * 验证码用途：email_verification, password_reset，非空
     */
    private String purpose;

    /**
     * 创建时间，非空，默认当前时间
     */
    private LocalDateTime createdAt;

    /**
     * 过期时间，非空
     */
    private LocalDateTime expiresAt;

    /**
     * 是否已使用，非空，默认FALSE
     */
    private Boolean isUsed;

    /**
     * 使用时间，可空
     */
    private LocalDateTime usedAt;
}